// 引入用户集合构造函数
const { User } = require('../../../model/user')
// 引入token集合构造函数
const Token = require('../../../model/token')
const jwt = require('jwt-simple');
const moment = require('moment')

module.exports = async (req, res) => {
  const { email, password } = req.body;
  const user = await User.findOne({ email: email })
  // 如果查询到了用户
  if(user) {
    const { username, role, _id } = user;
    if(password === user.password) {
      // 登陆成功
      let expires = moment().add(1,'days').valueOf();  //设置过期时间
      let token = jwt.encode({
        iss: user._id,
        exp: expires
      }, 'bbf');

      // 保存token到数据库中
      // window.sessionStorage.setItem('tokenServer', token)
      Token.create({token: token, username, role, uid: _id}).then(() => { console.log('创建文档成功') })
      .catch(() => console.log('文档创建失败'));
      
      res.send({
        data: {
          user,
          token,
        },
        meta: {
          msg: '登陆成功',
          status: 200
        }
      });
    } else {
      // 账号密码不匹配
      res.send({
        data: {
          msg: '登陆失败，账号或密码不正确'
        },
        meta: {
          status: 400
        }
      });
    }
  } else {
    // 查询不到用户
    res.send({
      data: {
        msg: '登陆失败，账号或密码不正确'
      },
      meta: {
        status: 400
      }
    });
  }
}